如何获得Process对象的PID (JAVA) |
您所在的位置:网站首页 › java process 进程 › 如何获得Process对象的PID (JAVA) |
找到了这里,就代表你找到了解决问题的途径 在Liunx系统上,如何获得一个Process对象的PID,用于杀死进程。 网上最多的解法是利用java.lang.UNIXProcess获取,当时我在CentOS-7上试了一次,发现不好使,代码如下: Class clazz = Class.forName("java.lang.UNIXProcess"); field = clazz.getDeclaredField("pid") field.setAccessible(true); pid = (Integer)field.get(p); 这段代码是手敲的,不保证正确,大概就是这样会报错 报错为:java.lang.ClassNotFoundException: java.lang.UNIXProcess 简而言之,就是找不到对应的类。 主要原因是:Process是一个抽象类,其本身不能实例化的,能实例化的是其子类,UNIXProcess能用的前提必须是Process的子类。我经过查询,发现在我使用的系统(或者JDK)版本上,Process的子类是ProcessImpl。如果有一天,我这个解法也不好用了,没关系,继续找Process的子类就可以了。。。 解决方法是把java.lang.UNIXProcess替换为java.lang.ProcessImpl
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |